home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1993 November / JCSM Shareware Collection - 1993-11.iso / cl720 / tsrtoo15.lzh / INT2148.C < prev    next >
C/C++ Source or Header  |  1993-08-28  |  3KB  |  148 lines

  1. /*
  2.     int2148.C
  3.  
  4.     Version 1.5
  5.  
  6.     Memory Experiment Using Interrupt 21h Function 48h
  7.  
  8.     Copyright (C) 1993, Geoff Friesen B.Sc.
  9.     All rights reserved.
  10.  
  11.     Developed with: Borland C++ 3.1
  12. */
  13.  
  14. /*
  15.     set ti=c:\borlandc\tsr\tsrlib
  16.     t int2148 -hi
  17. */
  18.  
  19. #if !defined(__TINY__)
  20. #error Tiny Memory Model Expected
  21. #endif
  22.  
  23. #include "tsrlib.H"
  24.  
  25. char *title = "\r\n"
  26.  
  27. "╔═══════════════════════════════════════════════════════╗\r\n"
  28. "║ ▒▒▒▒▒ ▒   ▒ ▒▒▒▒▒  ▒▒▒    ▒   ▒   ▒  ▒▒▒              ║\r\n"
  29. "║   ▒   ▒   ▒   ▒   ▒   ▒ ▒▒▒   ▒   ▒ ▒   ▒             ║\r\n"
  30. "║   ▒   ▒▒  ▒   ▒       ▒   ▒   ▒   ▒ ▒   ▒             ║\r\n"
  31. "║   ▒   ▒ ▒ ▒   ▒    ▒▒▒    ▒   ▒▒▒▒▒  ▒▒▒  Version 1.5 ║\r\n"
  32. "║   ▒   ▒  ▒▒   ▒   ▒       ▒       ▒ ▒   ▒             ║\r\n"
  33. "║   ▒   ▒   ▒   ▒   ▒       ▒       ▒ ▒   ▒             ║\r\n"
  34. "║ ▒▒▒▒▒ ▒   ▒   ▒   ▒▒▒▒▒ ▒▒▒▒▒     ▒  ▒▒▒              ║\r\n"
  35. "║                                                       ║\r\n"
  36. "║ Copyright (C) 1993, Geoff Friesen B.Sc.               ║\r\n"
  37. "║ All rights reserved.                                  ║\r\n"
  38. "╚═══════════════════════════════════════════════════════╝\r\n"
  39. "$";
  40.  
  41. #define    NCOLS    24
  42. #define    NROWS    3
  43.  
  44. char buffer [(NCOLS+1)*(NROWS+1)*2];
  45.  
  46. int column = (80-NCOLS)/2;
  47. int row = (25-NROWS)/2;
  48.  
  49. char *_uitoa (unsigned value, char *string);
  50.  
  51. void main (void)
  52. {
  53.    unsigned paras;
  54.    char buffer2 [6];
  55.    int cshape, i, vmode, x, y;
  56.  
  57.    if ((vmode = v_getmode ()) != BW80 && vmode != C80 && vmode != MONO)
  58.        return;
  59.  
  60.    cshape = v_getshape ();
  61.    v_setshape (0x2000);         /* hide cursor */
  62.  
  63.    x = v_wherex ();
  64.    y = v_wherey ();
  65.  
  66.    v_screen (SCREEN_SAVE, column, row, NCOLS+1, NROWS+1, buffer);
  67.  
  68.    v_setattr (LIGHTGRAY << 4);
  69.    v_border (SINGLE_LINE, column, row, NCOLS, NROWS);
  70.    v_shadow (column, row, NCOLS, NROWS);
  71.    v_clear(column+1, row+1, NCOLS-2, NROWS-2);
  72.  
  73.    v_gotoxy (column+1, row+1);
  74.    v_cputs ("Free Paragraphs: ");
  75.  
  76.    _AH = 0x48;
  77.    _BX = 0xffff;
  78.    geninterrupt(0x21);
  79.  
  80.    paras = _BX;
  81.    v_cputs (_uitoa (paras, buffer2));
  82.  
  83.    (void) k_fetch ();
  84.  
  85.    v_screen (SCREEN_RESTORE, column, row, NCOLS+1, NROWS+1, buffer);
  86.    v_gotoxy (x, y);
  87.    v_setshape (cshape);
  88. }
  89.  
  90. char *_uitoa (unsigned value, char *string)
  91. {
  92.    unsigned i = 0;
  93.  
  94.    do
  95.       string [i++] = value%10+'0';
  96.    while ((value /= 10) > 0);
  97.  
  98.    string [i] = '\0';
  99.    return strrev (string);
  100. }
  101.  
  102. #ifndef INCL_KFETCH
  103. #include "kfetch.C"
  104. #endif
  105.  
  106. #ifndef INCL_STRREV
  107. #include "strrev.C"
  108. #endif
  109.  
  110. #ifndef INCL_VBORDER
  111. #include "vborder.C"
  112. #endif
  113.  
  114. #ifndef INCL_VCPUTS
  115. #include "vcputs.C"
  116. #endif
  117.  
  118. #ifndef INCL_VGETMODE
  119. #include "vgetmode.C"
  120. #endif
  121.  
  122. #ifndef INCL_VGETSHAPE
  123. #include "vgetshap.C"
  124. #endif
  125.  
  126. #ifndef INCL_VPAINT
  127. #include "vpaint.C"
  128. #endif
  129.  
  130. #ifndef INCL_VSETATTR
  131. #include "vsetattr.C"
  132. #endif
  133.  
  134. #ifndef INCL_VSETSHAPE
  135. #include "vsetshape.C"
  136. #endif
  137.  
  138. #ifndef INCL_VSHADOW
  139. #include "vshadow.C"
  140. #endif
  141.  
  142. #ifndef INCL_VWHEREX
  143. #include "vwherex.C"
  144. #endif
  145.  
  146. #ifndef INCL_VWHEREY
  147. #include "vwherey.C"
  148. #endif